# 1. 必备参数(位置参数) 传递和定义的顺序及个数必须一致
def funa(name,age,gender):
    print(name)
    print(age)
    print(gender)
# return name,age,gender
# print(funa('badminton','two',"male"))
# 2. 默认参数（缺省参数） 没有传值会根据默认值来执行代码
#所有的位置参数必须放在再默认参数之前
# def funb(a=8,b): 这样就是报错
# def funb(a=8):
# #     return(a)
# # print(funb())
#     print(a)
# funb()
# funb(100)
# # 3.可变参数 传入的值是可以多个的 也可以不传入
# def func(*args):   #代码规范性
#     print(args)   # 以元组的形式接收的
# func(1,2,3)
# # 4.关键字参数
# def fund(**kwargs):
#     print(kwargs)
#     print(type(kwargs))   #以字典的形式接受
# fund(name='badminton',age=2)     #传值：键=值


# 函数嵌套：
def stury():
    print('晚上在学习')
    def course():
        print('Python')
    course()
stury()